package com.yupi.yuaiagent.demo.invoke.invoke;

import jakarta.annotation.Resource;
import org.springframework.ai.chat.messages.AssistantMessage;
import org .springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.boot.CommandLineRunner;

/**
 * 使用spring框架 调用 ai 大模型
 */
//@Component
public class SpringAiAiInvoke implements CommandLineRunner {




    @Resource
    private ChatModel dashscopeChatModel;

    /*@Override //qwq-plus
    public void run(String... args) throws Exception {
// 构造时，可以设置 ChatClient 的参数
        // {@link org.springframework.ai.chat.client.ChatClient};
        ChatClient chatClient = ChatClient.builder(chatModel)
                // 实现 Chat Memory 的 Advisor
                // 在使用 Chat Memory 时，需要指定对话 ID，以便 Spring AI 处理上下文。
                .defaultAdvisors(
                        new MessageChatMemoryAdvisor(new InMemoryChatMemory())
                        )
                // 实现 Logger 的 Advisor
                .defaultAdvisors(
                        new SimpleLoggerAdvisor()
                )
                // 设置 ChatClient 中 ChatModel 的 Options 参数
                .defaultOptions(
                        DashScopeChatOptions.builder()
                                .withTopP(0.7)
                                .build()
                )
                .build();

        Flux<String> content = chatClient.prompt("请介绍一下四大名著")
                .stream()
                .content();

        content.subscribe(
                chunk -> System.out.print(chunk),
                error -> error.printStackTrace(),
                () -> System.out.println("--- 内容结束 ---")
        );


    }*/


    @Override //qwen-plus
    public void run(String... args) throws Exception {



        AssistantMessage assistantMessage =    dashscopeChatModel
                .call(new Prompt("你好我是biubi"))
                .getResult()
                .getOutput();

        System.out.println(assistantMessage.getText());

    }


}
